#ifndef ATOM_INCLUDED
#define ATOM_INCLUDED
// atom string: global unique string in hash table

/**
 * @brief create an atom string from str, and sizeof(str) is len
 *
 * @param str
 * @param len
 * @return const char*
 */
extern const char *Atom_new(const char *str, int len);

/**
 * @brief return length of atom string which behalf str
 *
 * @param str  should from an atom string
 * @return int
 */
extern int Atom_length(const char *str);

/**
 * @brief create an atom string from str
 *
 * @param str
 * @return const char*
 */
extern const char *Atom_string(const char *str);

/**
 * @brief change int n to an atom string
 *
 * @param n
 * @return const char*
 */
extern const char *Atom_int(long n);
#endif